package com.hpf.spider.utils;

import com.alibaba.fastjson.JSONObject;

import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;

public class UrlUtils {

    /**
     * 将 JSON 对象转换为 GET 请求的 URL 参数
     *
     * @param json JSON 对象
     * @return URL 参数字符串
     */
    public static String convertJsonToUrlParams(JSONObject json) {
        StringBuilder urlParams = new StringBuilder();
        for (Map.Entry<String, Object> entry : json.entrySet()) {
            if (urlParams.length() > 0) {
                urlParams.append("&");
            }
            String key = entry.getKey();
            String value = entry.getValue() != null ? entry.getValue().toString() : "";
            try {
                // 对键和值进行 URL 编码
                urlParams.append(URLEncoder.encode(key, StandardCharsets.UTF_8.name()))
                        .append("=")
                        .append(URLEncoder.encode(value, StandardCharsets.UTF_8.name()));
            } catch (Exception e) {
                throw new RuntimeException("URL 编码失败", e);
            }
        }
        return urlParams.toString();
    }
}
